package com.knowledge.plus.java8.函数式接口;

import java.util.function.Consumer;

/**
 * Consumer<T> 消费型接口：接受一个输入参数 并且无返回的操作
 * 这个接口主要用于执行消费性操作，即对数据进行某种处理但并不返回任何结果
 *
 * @author TPF
 * @since 2023/12/5
 */
class ConsumerDemo {

    public static void main(String[] args) {
        /*
         * 示例1：
         * 创建一个 Consumer<String> 类型的变量 stringConsumer，并且使用了一个方法引用 System.out::println 来初始化它
         */
        Consumer<String> stringConsumer = System.out::println;  // 定义一个操作（初始化）
        stringConsumer.accept("Hello, World!"); // 消费：输出 "Hello, World!"

        /*
         * 示例2：
         */
        executeMethod("Hello, World!", msg -> {
            // 编写消费逻辑
            System.out.println(msg + " -> 转换为小写：" + msg.toLowerCase());  // Hello World -> 转换为小写：hello world
        });
    }

    public static void executeMethod(String key, Consumer<String> consumer) {
        // 消费数据
        consumer.accept(key);
    }

}
